#ifndef DISPLAY_TYPING_HW_H
#define DISPLAY_TYPING_HW_H

#include <stdbool.h>
#include <stdint.h>

#define DISPLAY_TYPING_BUFFER_MAX 129
#define DISPLAY_TYPING_SCREEN_WIDTH 128U
#define DISPLAY_TYPING_SCREEN_PAGES 8U

void DisplayTypingDemo_SpiInit(void);
void DisplayTypingDemo_Ssd1306Init(void);
void DisplayTypingDemo_Ssd1306WriteCommand(uint8_t cmd);
void DisplayTypingDemo_Ssd1306WriteData(const uint8_t *data, uint32_t length);
void DisplayTypingDemo_Ssd1306Fill(uint8_t value);
void DisplayTypingDemo_Ssd1306SetColumnAndPage(uint8_t colStart, uint8_t colEnd, uint8_t pageStart, uint8_t pageEnd);
void DisplayTypingDemo_Ssd1306FlushFull(const uint8_t *buffer, uint32_t length);
bool DisplayTypingDemo_IsInitialized(void);

#endif
